#include <iostream>

#include "iostream"
#include "vector"
#include "unordered_map"
#include "unordered_set"
#include "algorithm"
#include "string"
#include "list"
#include "string.h"
std::vector<int> vecs[]={
        {4,9,2,
         3,5,7,
         8,1,6},

        {8,3,4,
         1,5,9,
         6,7,2}


//        {6,1,8,
//         7,5,3,
//         2,9,4},
//
//        {2,7,6,
//         9,5,1,
//         4,3,8},
};
int common_visit(int i,int x,int y){
    return vecs[i][x+y*3];
}
int x_mirror_visit(int i,int x,int y){
    x=2-x;
    return vecs[i][x+y*3];
}
int y_mirror_visit(int i,int x,int y){
    y=2-y;
    return vecs[i][x+y*3];
}
int x_y_mirror_visit(int i,int x,int y){
    x=2-x; y=2-y;
    return vecs[i][x+y*3];
}
//int ul_mirror_visit(int i,int x,int y){
//    std::swap(x,y);
//    return vecs[i][x+y*3];
//}
//int ur_mirror_visit(int i,int x,int y){
//    int x_cp=x;
//    x=2-y;
//    y=2-x_cp;
//    return vecs[i][x+y*3];
//}
class OneLoop {
public:
    std::vector<int> vec;
    int cnt=0;
    int match_i=0;
    int match_ti=0;
    int match(int vi){
        std::vector<char> tag(4, true);

        for(int x=0;x<3;x++){
            for(int y=0;y<3;y++){
                if(vec[x+3*y]!=0){
                    //不为0，检查匹配
                    if(vec[x+3*y]!= common_visit(vi,x,y)){
                        tag[0]=false;
                    }
                    if(vec[x+3*y]!= x_mirror_visit(vi,x,y)){
                        tag[1]=false;
                    }
                    if(vec[x+3*y]!= y_mirror_visit(vi,x,y)){
                        tag[2]=false;
                    }
                    if(vec[x+3*y]!= x_y_mirror_visit(vi,x,y)){
                        tag[3]=false;
                    }
//                    if(vec[x+3*y]!= ul_mirror_visit(vi,x,y)){
//                        tag[3]=false;
//                    }
//                    if(vec[x+3*y]!= ur_mirror_visit(vi,x,y)){
//                        tag[4]=false;
//                    }
                }
            }
        }
        int cnt=0;
        for(int i=0;i<tag.size();i++){
            auto t=tag[i];
            if(t){
                match_i=vi;
                match_ti=i;
                cnt++;
            }
        }
        return cnt;
    }
    bool run() {
        vec.resize(9);
        for(int i=0;i<9;i++){
            if(std::cin>>vec[i]){

            }else{
                return false;
            }
        }
        int cnt=0;
        for(int i=0;i<2;i++){
            cnt+=match(i);
            if(cnt>1){
                break;
            }
        }
        if(cnt>1){
            printf("Too Many\n");
        }else if(cnt==1){
            for(int y=0;y<3;y++){
                for(int x=0;x<3;x++){
                    switch (match_ti) {
                        case 0:
                            printf("%d ", common_visit(match_i,x,y));
                            break;
                        case 1:
                            printf("%d ", x_mirror_visit(match_i,x,y));
                            break;
                        case 2:
                            printf("%d ", y_mirror_visit(match_i,x,y));
                            break;
                        case 3:
                            printf("%d ", x_y_mirror_visit(match_i,x,y));
                            break;
//                        case 4:
//                            printf("%d ", ur_mirror_visit(match_i,x,y));
//                            break;
                    }
                }
                printf("\n");
            }
        }
//        printf("%d\n",max);
        return true;
    }
};

class Solution {
public:
    void run() {

        bool first = true;
        int64_t a, b, c, d, e;
        char cc;
        //        std::cin >> a;
        std::string s1,s2;
//        while (1){
        while (
//                std::getline(std::cin,s1)
                1
                ) {
//            std::getline(std::cin,s2);
            OneLoop l;
            if (!l.run()) {
                return;
            }
        }


    }
};

int main() {

    //    bool cur_num= true;
    Solution().run();
    return 0;
}

